#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int Add(int num1, int num2) {
    // write code here
    while (num1)//num1不为0就表示还有进位
    {
        int tmp = num1 ^ num2; //计算不算进位的相加结果
        num1 = (num1 & num2) << 1;//计算有进位的位置，左移1就将进位移到它该在的位置
        num2 = tmp; //将没进位的结果交给num2，直到进位为0，结束计算
    }
    return num2;
}

int main()
{
	int ret = Add(1, 3);
	printf("%d", ret);
}

//00000001
//00000011
//00000010
//00000001>>00000010
//
//00000010
//00000010
//00000000
//00000010<<00000100
//
//00000000
//00000100
//00000100
//00000000<<00000000